## 数据类型转换


# 1.将其它类型转为字符串
print('------------------1.将其它类型转为字符串------------------------')
s1 = '张三'
i1 = 23
print( type(s1), type(i1) )
#print( '我叫'+s1+' 今年，'+i1+'岁。' ) 没有转换会报错：TypeError: can only concatenate str (not "int") to str
print( '我叫'+s1+' 今年，'+str(i1)+'岁。' )

s1 = 10
s2 = 23.32
s3 = False
print( type(s1), type(s2), type(s3) )
print( '其它类型转字符串： '+str(s1), str(s2), str(s3))
# 执行结果如下：
'''
------------------1.将其它类型转为字符串------------------------
<class 'str'> <class 'int'>
我叫张三 今年，23岁。
<class 'int'> <class 'float'> <class 'bool'>
其它类型转字符串： 10 23.32 False
'''


# 2.将其它类型转为int
print('------------------2.将其它类型转为int------------------------')
s1 = '23'
s2 = 42.32
s3 = '43.43'
s4 = True
s5 = False
s6 = 'abc'
print( int(s1), type(int(s1)) )
print( int(s2), type(int(s2)) )
#print( int(s3) ) 转换报错： ValueError: invalid literal for int() with base 10: '43.43'
print( int(s4), type(int(s4)) )
print( int(s5), type(int(s5)) )
# print( int(s6) ) 字符串中不是整数数字 报错：ValueError: invalid literal for int() with base 10: 'abc'

print('总结：s3字符串中存在小数时，转换int 会报错！ ;\n '
      's4与s5 True 转为int = 1 , False 转为int = 0 ; \n '
      's6字符串中不是整数数字，转int 就会报错; ')
# 执行结果如下：
'''
------------------2.将其它类型转为int------------------------
23 <class 'int'>
42 <class 'int'>
1 <class 'int'>
0 <class 'int'>
总结：s3字符串中存在小数时，转换int 会报错！ ;
 s4与s5 True 转为int = 1 , False 转为int = 0 ; 
 s6字符串中不是整数数字，转int 就会报错; 
 '''


# 3.将其它类型转为float
print('------------------3.将其它类型转为float------------------------')
s1 = '23'
s3 = '43.43'
s4 = True
s5 = False
s6 = 'abc'
print( float(s1), type(float(s1)) )
print( float(s3))
print( float(s4))
print( float(s5))
# print( float(s6)) 字符串中不是数字转float 报错：ValueError: could not convert string to float: 'abc'
# 执行结果如下：
'''
------------------3.将其它类型转为float------------------------
23.0 <class 'float'>
43.43
1.0
0.0
'''


